package com.data.util;

import org.junit.Test;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;

/**
 * @Author Str
 * @Date 2022/1/22 15:45
 * @Description :
 */
@Configuration
public class FileUtil {

    // 数据存放地址
    public String filePath = "stock-data-server" + File.separatorChar + "src" + File.separatorChar + "main" + File.separatorChar + "resources" + File.separatorChar + "data" + File.separatorChar;

    /**
     * 获取文件全名
     */
    public String getFileFullName(String fileName) {
        // 获取文件列表
        String[] fileList = getFileList();
        System.out.println("========================");
        System.out.println(Arrays.toString(fileList));
        System.out.println("========================");

        for (String f : fileList) {
            if (f.contains(fileName))
                return f;
        }
        return null;
    }

    /**
     * 获取文件列表
     */
    public String[] getFileList() {
        String[] list;
        // 如果resources/data目录下没有文件，则target/classes/data文件夹会被删除
        // 导致this.getClass().getResource("/data")报空指针异常
        try {
            // 获取该目录下文件名称列表
            list = new File(getFilePath()).list();
        } catch (NullPointerException e) {
            list = null;
        }
        return list;
    }

    /**
     * 获取classpath路径下data目录的路径
     */
    public String getFilePath() {
        return this.getClass().
                getResource("/data").
                getPath();
    }

    @Test
    public void fun1() throws IOException {
        System.out.println(getFileFullName("1000001"));
        System.out.println(getFilePath());
    }
}
